#帮助文档中的方法标记法
=begin
实例方法：类名#方法 Array#each
类方法：类名.方法 类名::方法 Array.new
=end

#定义普通方法
def hello(name1,name2="Ruby",name3="Ruby") #可定义默认值，从右往左
    puts "Hello,#{name1},#{name2},#{name3}"
end
hello("张天泽")

#方法的返回值
def max(a,b)
    if a>b
        a #省略了return
    else 
        b #省略了return
    end
end
p print("print返回："),max(1,2)

#定义带块方法
def myloop #等同loop方法
    while true
        yield
    end
end 
num=1
myloop do
    print num
    num*=2
    break if num>10
end

#定义方法参数不确定
def a(*args) #封装为数组
    args
end
print a(1,2,3),"\n"
def b(a,*b,c) # 只能出现一次
    [a,b,c]
end
print b(1,2,3,4,5),b(1,5),"\n"

#关键字参数
#def func(参数1:值1,参数2:值2,...)，相当于指定了默认值，值可省，可以与普通参数搭配使用
def area(x:0,y:0)
    x*y
end
p area(x:1,y:2),area(x:1)
#使用**args散列保存为=未定义参数
def meth(x:0,y:0,**args)
    [x,y,args]
end
p meth(x:1,y:2,z:3)
#散列作为参数
hash1={x:2,y:2,z:3}
p meth(hash1) #可以省略散列的{}